package cn.xd.common.constant;

import java.util.concurrent.TimeUnit;

/**
 * @author : mirzaLin
 * @data : 2023/11/19
 * @description :
 **/
public interface AuthConstant {
    /**
     * 认证信息Http请求头
     */
    String JWT_TOKEN_HEADER = "authorization";

    /**
     * JWT令牌前缀
     */
    String JWT_TOKEN_PREFIX = "Bearer ";

    /**
     * 用户信息Http请求头
     */
    String USER_TOKEN_HEADER = "user";

    String freezeFormat = "AUTH:PASSWORD_FAIL_FREEZE:%s:%s";
    /**
     * 短信验证码key前缀
     */
    String SMS_CODE_PREFIX = "AUTH:SMS_CODE:";
    String SMS_CODE_FORMAT = "AUTH:SMS_CODE:%s";
    /**
     * 验证码key前缀
     */
    String VERIFY_CODE_KEY_PREFIX = "AUTH:VERIFY_CODE:";
    String VERIFY_CODE_KEY_FORMAT = "AUTH:VERIFY_CODE:%s";

    String AUTH_USER_KEY_PREFIX = "AUTH:KEY:";
    String AUTH_USER_KEY_FORMAT = "AUTH:KEY:%s:%s:%s:%s";

    /**
     * 登录用户信息缓存前缀
     */
    String AUTH_USER_INFO_PREFIX = "AUTH:USER_INFO:";

    /**
     * 登录用户信息格式
     */
    String AUTH_USER_INFO_FORMAT = "AUTH:USER_INFO:%s";
    /**
     * 登录用户权限前缀
     */
    String AUTH_USER_PERM_PREFIX = "AUTH:USER_PERM:";

    /**
     * 登录用户权限信息格式
     */
    String AUTH_USER_PERM_FORMAT = "AUTH:USER_PERM:%s";

    /**
     * 登录用户信息缓存时间（单位）
     */
    TimeUnit AUTH_USERINFO_DEFAULT_TIME_UNIT = TimeUnit.DAYS;
    /**
     * 登录用户信息缓存时间
     */
    Long AUTH_USERINFO_DEFAULT_TIME_OUT = 30L;

}
